// TagEngine.h: interface for the CTagEngine class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_TAGENGINE_H__153E7BF2_09F2_4996_A511_291C99755E54__INCLUDED_)
#define AFX_TAGENGINE_H__153E7BF2_09F2_4996_A511_291C99755E54__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include <e32std.h>
#include <badesca.h>        // for CDesCArray
#include <f32file.h>		// for file session

// Error code definition
#define TAGENG_PROCESSUCCESS		0
#define TAGENG_COUNTNOTEQUAL		1
#define TAGENG_NOVALUETOCHAGNE		2



class CTagEngine  
{
public:
	CTagEngine();
	virtual ~CTagEngine();
	
public:
	void Test(TFileName& aFile);

/*------------------------------------------------------------------
	Function:	Prepare
	Class:		CTagEngine
	Parameters:	void
	Return:		void	
	Descript:	Init engine
	Author:		ma811
	Date:		2007/10/28
------------------------------------------------------------------*/
	void Prepare();
	
/*------------------------------------------------------------------
	Function:	ChangeTag
	Class:		CTagEngine
	Parameters:	aFileList - array that contains the media file list
				aTagName - Tag to be change

	Return:		Succeed return zero	
	Descript:	Sumbit a change request, it will be stored until process perform
				the actual actions
	Author:		ma811
	Date:		2007/10/28
------------------------------------------------------------------*/
	TInt ChangeTag(const CDesCArray& aFileList, const CDesCArray& aTagNames, const CDesCArray& aTagValues);
	
/*------------------------------------------------------------------
	Function:	Process
	Class:		CTagEngine
	Parameters:	void
	Return:		Succeed return zero, otherwise return error code	
	Descript:	Process the request
	Author:		ma811
	Date:		2007/10/28
------------------------------------------------------------------*/
	TInt Process();

protected:
	// Fileserver session
	RFs iFsSession;
};

#endif // !defined(AFX_TAGENGINE_H__153E7BF2_09F2_4996_A511_291C99755E54__INCLUDED_)
